From: Keir Fraser Date: Mon, 26 May 2008 07:45:59 +0000 (+0100) Subject: x86 hvm: Drop pagetable reference when resetting a VCPU to real mode. X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~14207^2~31 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https:/%22bookmarks://%22Dat/%22http:/www.example.com/cgi/%22https:/%22bookmarks:/%22Dat?a=commitdiff_plain;h=2616d6e2e8bc18eadb68a06c977d03f59e5639fd;p=xen.git x86 hvm: Drop pagetable reference when resetting a VCPU to real mode. Signed-off-by: Keir Fraser --- diff --git a/xen/arch/x86/hvm/hvm.c b/xen/arch/x86/hvm/hvm.c index 80f494f584..c755a4c462 100644 --- a/xen/arch/x86/hvm/hvm.c +++ b/xen/arch/x86/hvm/hvm.c @@ -2073,6 +2073,13 @@ void hvm_vcpu_reset_state(struct vcpu *v, uint16_t cs, uint16_t ip) if ( v->is_initialised ) goto out; + if ( !paging_mode_hap(d) ) + { + if ( v->arch.hvm_vcpu.guest_cr[0] & X86_CR0_PG ) + put_page(pagetable_get_page(v->arch.guest_table)); + v->arch.guest_table = pagetable_null(); + } + ctxt = &v->arch.guest_context; memset(ctxt, 0, sizeof(*ctxt)); ctxt->flags = VGCF_online;